Skip to content

fix(scripts): rebuild DMG with signed .app after notarizing — fixes notarize Invalid#59

Merged
oratis merged 1 commit into
mainfrom
fix/dmg-signing-order
May 28, 2026
Merged

fix(scripts): rebuild DMG with signed .app after notarizing — fixes notarize Invalid#59
oratis merged 1 commit into
mainfrom
fix/dmg-signing-order

Conversation

@oratis

@oratis oratis commented May 28, 2026

Copy link
Copy Markdown
Owner

Tauri's bundle_dmg.sh bakes the unsigned .app into the DMG before we sign it. Just signing the DMG container doesn't help — Apple notarization unpacks it and re-verifies binaries inside. Fix: rebuild the DMG with hdiutil after signing the .app. End-to-end verified: both .app and .dmg notarized + stapled + spctl-accepted.

…otarize Invalid

Root cause: Tauri's bundle_dmg.sh ran in step 1 and baked an UNSIGNED .app
into the DMG. Signing the DMG container alone doesn't help — Apple
notarization unpacks the DMG and re-verifies every binary inside, so it
saw an unsigned binary and rejected with statusSummary "Archive contains
critical validation errors".

Fix: after signing + notarizing + stapling the standalone .app, REBUILD
the DMG from scratch (hdiutil create with the now-signed .app), then
sign + notarize + staple the new DMG.

Verified end-to-end:
  · DeepCode.app           → accepted, source=Notarized Developer ID ✓
  · DeepCode_0.1.0_aarch64.dmg → accepted, source=Notarized Developer ID ✓
  · Authority chain: Bihao Wang (9LH9NBX7P4) → Apple Root CA ✓

release-artifacts/:
  · DeepCode-0.1.0-arm64.dmg (4.7 MB) — signed + notarized + stapled
  · Replaces the previous -unsigned.dmg
  · README.md updated: removed Gatekeeper-bypass section, added
    spctl/codesign verification commands

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@oratis oratis merged commit d63135a into main May 28, 2026
@oratis oratis deleted the fix/dmg-signing-order branch May 28, 2026 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant